############################################################################
#  _
# | |_ _ __ ___  _   ___  __
# | __| '_ ` _ \| | | \ \/ /
# | |_| | | | | | |_| |>  <
#  \__|_| |_| |_|\__,_/_/\_\
#
############################################################################
# COPY AND PASTE
############################################################################
set -g mode-keys vi
set -s set-clipboard off
bind P paste-buffer
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X rectangle-toggle
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel 'wl-copy'
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'wl-copy'

############################################################################
# Reset prefix
############################################################################
# Set the prefix to `ctrl + a` instead of `ctrl + b`
set -g prefix C-a
bind-key C-a send-prefix

############################################################################
# Unbindings
############################################################################
# unbind [ # copy mode bound to escape key
unbind C-b # unbind default leader key
unbind '"' # unbind horizontal split
unbind %   # unbind vertical split

############################################################################
# Bindings
############################################################################
# Reload tmux settings
bind-key r \
	source-file ~/.config/tmux/tmux.conf \;\
	display 'Reloaded tmux config'

# Split in current pane (horizontal / vertical)
bind-key c split-window -v # split pane horizontally
bind-key v split-window -h # split pane vertically

# New window
bind-key a neww

# Break-pane
bind-key Enter break-pane

# %% = prompt for window.pane [-V|H] # vert|hor split
bind-key Space command-prompt 'joinp -t:%%'

############################################################################
# Navigation
############################################################################
bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R

############################################################################
# Resizing
############################################################################
bind-key -r C-h resize-pane -L
bind-key -r C-j resize-pane -D
bind-key -r C-k resize-pane -U
bind-key -r C-l resize-pane -R

############################################################################
# layouts
############################################################################
bind-key M-- select-layout "even-vertical"
bind-key M-| select-layout "even-horizontal"
bind-key M-r rotate-window

############################################################################
# window
############################################################################
bind-key e new-window "neomutt"
bind-key E new-window "khard email | fzf --header-lines=1 | tr -d '\n' | tmux load-buffer -"
bind-key H new-window "export CM_OUTPUT_CLIP=1; export CM_LAUNCHER=fzf; clipmenu | tmux load-buffer -"
bind-key L new-window "svlogtail"
bind-key m new-window "ncmpcpp"
bind-key M new-window "alsamixer"
bind-key g new-window "newsraft"
bind-key G new-window "proxychains5 newsraft"
bind-key b new-window "w3m ddg.gg"
bind-key B new-window "proxychains4 w3m ddg.gg"
bind-key y new-window "pipe-viewer -3"

############################################################################
# Global options
############################################################################
# Start windows and panes at 1, not 0
set -g base-index 1
setw -g pane-base-index 1

# large history
set -g history-limit 30000

# colors "xterm-256color"  "screen-256color"
set -g default-terminal "screen-256color"

# basic settings
set -g monitor-activity on

# use mouse
# set -g mouse on

# Automatically set window title
set -g automatic-rename on
set -g set-titles on

# Open tmux config and reload settings on quit
bind C-t new-window -n 'tmux.conf' "sh -c 'nvim ~/.config/tmux/tmux.conf && tmux source ~/.config/tmux/tmux.conf'"
# Open vim config
bind C-v new-window -n 'nvim' "sh -c 'nvim ~/.config/nvim/init.lua'"
# Open xinit config
bind C-x new-window -n 'xinit' "sh -c 'nvim ~/.config/xprofile'"
# Open bashrc config
bind C-b new-window -n 'bashrc' "sh -c 'nvim ~/.bashrc'"
# Open zshrc config
bind C-z new-window -n 'bashrc' "sh -c 'nvim ~/.config/zsh/.zshrc'"

############################################################################
# Theme
############################################################################
set -g status-style bg=black,fg=white
set -g status-left-style bg=black,fg=green
set -g status-left-length 20
set-option -g status-left "\
	#[fg=white, bg=black]#{?client_prefix,#[bg=magenta],} #S \
	#[fg=red, bg=black]»"
set -g status-right-style bg=black,fg=cyan
set -g status-right-length 70
# set -g status-right "\
# #[fg=red]« #[fg=white]#{net_speed}\
# #[fg=red]« #[fg=magenta]#{ram_percentage}\
# #[fg=red]« #[fg=blue]#{cpu_percentage}, #{cpu_temp}\
# #[fg=red]« #[fg=green] %d/%b #[fg=cyan]%H:%M\
# #[fg=red]« #[fg=yellow]#(acpi | awk -F ',' '{ print $2 }' | tr -d ' ')"

set -g status-right "\
#[fg=red] « #[fg=magenta]#(tmux-mailbox) \
#[fg=red]« #[fg=green]%d/%b #[fg=cyan]%H:%M\
#[fg=red] « #[fg=yellow]#(tmux-battery)"

set -g window-status-format " #I:#W#F "
set -g window-status-current-format " #I:#W#F "
set -g window-status-current-style bg=cyan,fg=black
set -g window-status-activity-style bg=black,fg=yellow
set -g window-status-separator "|"
# set -g status-justify centre
set -g pane-border-style bg=default,fg=default
set -g pane-active-border-style bg=default,fg=green
set -g display-panes-colour default
set -g display-panes-active-colour default
set -g clock-mode-colour red
set -g clock-mode-style 24
set -g message-style bg=default,fg=default
set -g message-command-style bg=default,fg=default
set -g mode-style bg=red,fg=default

# ============================
# ===       Plugins        ===
# ============================
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

set -g @plugin 'wfxr/tmux-fzf-url'
set -g @plugin 'tmux-plugins/tmux-copycat'
set -g @plugin 'schasse/tmux-jump'
set -g @jump-key 's'
set -g @plugin 'christoomey/vim-tmux-navigator'
# set -g @plugin 'tmux-plugins/tmux-open'

# set -g @plugin 'tmux-plugins/tmux-cpu'
# set -g @plugin 'tmux-plugins/tmux-net-speed'
# set -g @net_speed_interfaces "wlp3s0"
# set -g @net_speed_format " %6s  %6s"

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.config/tmux/plugins/tpm/tpm'
